package com.websec.test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;

import br.com.websec.xml.DetalheXML;
import br.com.websec.xml.RemessaXML;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class RemessaTestXML {

	static Serializer serializar = new Persister();

	public static void main(String args[]) throws Exception {

		RemessaXML xml = new RemessaXML();
		List<DetalheXML> lista = new ArrayList<DetalheXML>();
		lista = detalhes();

		xml.setCodigoBanco("341");
		xml.setRazaoSocialEmpresa("Universidade Sao Judas Tadeu");

		xml.setCpfCnpjEmpresa("54481502000100");

		xml.setCodigoConvenioBanco("");

		xml.setAgencia("6745");
		xml.setDigitoAgencia("4");
		xml.setPosto("");

		xml.setConta("34567");
		xml.setDigitoConta("4");
		xml.setDigitoAgenciaConta("3");
		xml.setNomeBanco("ITAU");
		xml.setTipoOperacao(1);
		xml.setDataGeracao(new Date());
		xml.setHoraGeracaoArquivo(10);

		xml.setSequenciaArquivo(3);
		xml.setDensidadeArquivo("23456");
		xml.setUsoBanco("");
		xml.setUsoEmpresa("");
		xml.setUsoVans("");

		xml.setTipoServico("01");

		xml.setOcorrencias("");
		xml.setDetalhes(lista);
		xml.setTipoRegistro("1");
		xml.setNumeroSequencial("12");

		List<DetalheXML> listadetalhes = detalhes();

		DetalheXML d = new DetalheXML();
		d = listadetalhes.get(0);

		xml.setDetalhes(listadetalhes);

		XStream xStream = new XStream();
		xStream.alias("detalhes", List.class);

		File file = new File("E:\\arquivos\\titulos.xml");
		FileOutputStream gravar;
		try {
			gravar = new FileOutputStream(file);
			gravar.write(xStream.toXML(xml).getBytes());
			gravar.close();
		} catch (IOException ex) {
			ex.printStackTrace();
		}

		lerXml();

	}

	private static void lerXml() {
		FileReader reader = null;
		try {
			// carrega o arquivo XML para um objeto reader
			reader = new FileReader("E:\\arquivos\\titulos.xml");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		// Cria o objeto xstream
		XStream xStream = new XStream(new DomDriver());
		// informamos as tags que serão lidas

		xStream.alias("titulos", RemessaXML.class);
		xStream.alias("detalhes", ArrayList.class);

		RemessaXML t = (RemessaXML) xStream.fromXML(reader);
		// Exibimos no console o resultado
		System.out.println(t.getDetalhes().get(0).getAceite());

	}

	public static List<DetalheXML> detalhes() {

		List<DetalheXML> lista = new ArrayList<DetalheXML>();

		DetalheXML d = new DetalheXML();
		DetalheXML d2 = new DetalheXML();

		d.setCodigoBanco("341");

		d.setLoteServico(1);

		d.setRegistroCabecalho(1);

		d.setTipoOperacao("REMESSA");

		d.setTipoServico("1");

		d.setFormaLancamento("M");
		
		d.setSerie("T");
		
		d.setParcela(1);

		d.setVersaoLayout("2");

		d.setTipoInscricaocEmpresa(1);

		d.setCpfCnpjEmpresa("54481502000100");

		d.setCodigoConvenioBanco("teste");

		d.setAgencia("6792");

		d.setAceite('0');

		d.setDigitoAgencia("2");

		d.setPosto("1");
		
		d.setStatus("Em Aberto");

		d.setConta("01455558");

		d.setDigitoConta("1");

		d.setDigitoAgenciaConta("1");

		d.setRazaoSocialEmpresa("UNIVERSIDADE USJT");

		d.setMensagem1("");

		d.setMensagem2("");

		d.setNrRemRet(1);

		d.setDataRemRet(new Date());

		d.setDataCredito(new Date());

		d.setDataLiquidacao(null);

		d.setCodigoCarteira(12);

		d.setCodCarteiraCnab("12");

		d.setIdentificacaoTitulo("43214");

		d.setVariacaocarteira("983");

		d.setIdentificacaoTituloEmpresa("432");

		d.setVlrPercMulta(new BigDecimal("0.00"));

		d.setDigitoNossoNumero("23");
		
		d.setEspecieTitulo(1);

		d.setCodigoMovimento(1);

		d.setDocumentoCobranca("542");

		d.setDataVencimentoTitulo(new Date());
		
		d.setDataVencimentoUtil(new Date());

		d.setVlrTitulo(new BigDecimal("300.00"));

		d.setEspecieTitulo(1);
		

		d.setDataEmissaoTitulo(new Date());

		d.setCodigoJuros(0);

		d.setVlrJurosTaxa(new BigDecimal("0.00"));

		d.setDataDesconto(new Date());

		d.setValorDesconto(new BigDecimal("0.00"));

		d.setValorIOF(new BigDecimal("0.00"));

		d.setValorAbatimento(new BigDecimal("0.00"));

		d.setTipoInscricaoCliente(1);

		d.setCpfCnpjCliente("02808708001170");

		d.setRazaoSocialCliente("Gatorade");

		d.setEnderecoCliente("Rua chicago, 201");

		d.setBairroCliente("Parque Paraiso");

		d.setCepCliente("06852650");

		d.setSequencialRegistro(1);

		d.setCodigoRejeicoes("");

		d.setValorJurosMulta(new BigDecimal("0.00"));

		d.setValorAbattimentoCancelado(new BigDecimal("0.00"));

		d.setValorPago(new BigDecimal("0.00"));

		d.setValorLiquidacaoCredito(new BigDecimal("0.00"));

		d.setValorOutrasDespesas(new BigDecimal("0.00"));

		d.setValorOutrosCreditos(new BigDecimal("0.00"));

		d.setValorOcorrenciaSacado(new BigDecimal("0.00"));

		d.setInstrucoes(1);

		d.setOutrasInstrucoes(0);

		d.setCidadeCliente("Itapecerica da Serra");

		d.setUfCli("SP");

		d.setTipoInscAva(1);

		d.setCpfCnpjAvalista("");

		d.setRazAva("");
		
		d.setEmail("shirlaneleite@gmail.com");

		lista.add(d);
		
		
		
		
		
		d2.setCodigoBanco("341");

		d2.setLoteServico(1);

		d2.setRegistroCabecalho(1);

		d2.setTipoOperacao("REMESSA");

		d2.setTipoServico("1");

		d2.setFormaLancamento("M");
		
		d2.setSerie("T");
		
		d2.setParcela(1);

		d2.setVersaoLayout("2");

		d2.setTipoInscricaocEmpresa(1);

		d2.setCpfCnpjEmpresa("44495687000159");

		d2.setCodigoConvenioBanco("teste");

		d2.setAgencia("6792");

		d2.setAceite('0');

		d2.setDigitoAgencia("2");

		d2.setPosto("1");
		
		d2.setStatus("Em Aberto");

		d2.setConta("01455558");

		d2.setDigitoConta("1");

		d2.setDigitoAgenciaConta("1");

		d2.setRazaoSocialEmpresa("Samuel Guimarães");

		d2.setMensagem1("");

		d2.setMensagem2("");

		d2.setNrRemRet(1);

		d2.setDataRemRet(new Date());

		d2.setDataCredito(new Date());

		d2.setDataLiquidacao(null);

		d2.setCodigoCarteira(12);

		d2.setCodCarteiraCnab("12");

		d2.setIdentificacaoTitulo("29171");

		d2.setVariacaocarteira("982");

		d2.setIdentificacaoTituloEmpresa("19937");

		d2.setVlrPercMulta(new BigDecimal("0.00"));

		d2.setDigitoNossoNumero("23");
		
		d2.setEspecieTitulo(1);

		d2.setCodigoMovimento(1);

		d2.setDocumentoCobranca("542");

		d2.setDataVencimentoTitulo(new Date());
		
		d2.setDataVencimentoUtil(new Date());

		d2.setVlrTitulo(new BigDecimal("3534.90"));

		d2.setEspecieTitulo(1);
		

		d2.setDataEmissaoTitulo(new Date());

		d2.setCodigoJuros(0);

		d2.setVlrJurosTaxa(new BigDecimal("0.00"));

		d2.setDataDesconto(new Date());

		d2.setValorDesconto(new BigDecimal("0.00"));

		d2.setValorIOF(new BigDecimal("0.00"));

		d2.setValorAbatimento(new BigDecimal("0.00"));

		d2.setTipoInscricaoCliente(1);

		d2.setCpfCnpjCliente("22947316000128");

		d2.setRazaoSocialCliente("Gatorade");

		d2.setEnderecoCliente("Avenia Itália, 1403");

		d2.setBairroCliente("Parque Paraiso");

		d2.setCepCliente("06852200");

		d2.setSequencialRegistro(1);

		d2.setCodigoRejeicoes("");

		d2.setValorJurosMulta(new BigDecimal("0.00"));

		d2.setValorAbattimentoCancelado(new BigDecimal("0.00"));

		d2.setValorPago(new BigDecimal("0.00"));

		d2.setValorLiquidacaoCredito(new BigDecimal("0.00"));

		d2.setValorOutrasDespesas(new BigDecimal("0.00"));

		d2.setValorOutrosCreditos(new BigDecimal("0.00"));

		d2.setValorOcorrenciaSacado(new BigDecimal("0.00"));

		d2.setInstrucoes(1);

		d2.setOutrasInstrucoes(0);

		d2.setCidadeCliente("Itapecerica da Serra");

		d2.setUfCli("SP");

		d2.setTipoInscAva(1);

		d2.setCpfCnpjAvalista("");

		d2.setRazAva("");
		d2.setEmail("joaoeudes@gmail.com");

		lista.add(d2);

		return lista;

	}
}
